/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wasolicitudesfiec.consultas.busqueda;

import entidad.apertura.Solicitudaperturapostgrado;
import entidad.ayudantias.Solicitudayudantia;
import entidad.ayudantias.Solicitudserayudante;
import entidad.cambioCarrera.Solicitudcambiocarrera;
import entidad.convalidacionMateria.Solicitudconvalidacionmateria;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import wasolicitudesfiec.registros.Rg_Solicitud;

/**
 *
 * @author Administrador
 */
public class BusquedaSolicitud {

	private Connection con;

	public void setConexion(Connection con) {
		this.con = con;
	}
// enum('Terminada','Cancelada','Activa')

	private ResultSet buscarSolicitud(Date fechaCreacion_desde, Date fechaCreacion_hasta,
			Date fechaModificacion_desde, Date fechaModificacion_hasta,
			String estado,
			String solicitante, String participante,
			String titulo,
			String procedimiento) throws SQLException {

		PreparedStatement proc = con.prepareStatement(
				"call " + procedimiento + "(?,?," +
				"?,?," +
				"?," +
				"?,?," +
				"?)");
		proc.setDate(1, fechaCreacion_desde);
		proc.setDate(2, fechaCreacion_hasta);
		proc.setDate(3, fechaModificacion_desde);
		proc.setDate(4, fechaModificacion_hasta);
		proc.setString(5, estado);
		proc.setString(6, solicitante);
		proc.setString(7, participante);
		proc.setString(8, titulo);

		ResultSet rs = proc.executeQuery();

		return rs;
	}

	public Vector<Solicitudayudantia> buscarSolicitudAyudantia(Date fechaCreacion_desde, Date fechaCreacion_hasta,
			Date fechaModificacion_desde, Date fechaModificacion_hasta,
			String estado,
			String solicitante, String participante,
			String titulo) throws SQLException {
		Vector<Solicitudayudantia> datos = new Vector<Solicitudayudantia>();
		Solicitudayudantia reg;
		ResultSet rs = buscarSolicitud(fechaCreacion_desde, fechaCreacion_hasta, fechaModificacion_desde, fechaModificacion_hasta, estado, solicitante, participante, titulo, "buscarSolicitudAyudantia");
		while (rs.next()) {
			reg = new Solicitudayudantia();
			reg.setActividadarealizar(rs.getString(1));
			reg.setEstado(rs.getString(2));
			reg.setFechaMaxConfimacion(rs.getDate(3));
			reg.setFechaMaxRegistro(rs.getDate(4));
			reg.setFechacreacion(rs.getTimestamp(5));
			reg.setFechafinayudantia(rs.getDate(6));
			reg.setFechainicioayudantia(rs.getDate(7));
			reg.setFechamodificacion(rs.getTimestamp(8));
			reg.setFkIdAyudantiaVaria(rs.getInt(9));
			reg.setFkIdMateria(rs.getInt(10));
			reg.setFkIdProfesor(rs.getInt(11));
			reg.setFkParent(rs.getInt(12));
			reg.setFkiddecano(rs.getInt(13));
			reg.setHorasAyudantias(rs.getInt(14));
			reg.setIdSolicitudAyudantia(rs.getInt(15));
			reg.setMensajeParaDecano(rs.getString(16));
			reg.setNombreinstanciaproceso(rs.getString(17));
			reg.setObservacionEvaluador(rs.getString(18));
			reg.setPromedioFacultad(rs.getDouble(19));
			reg.setRegistroHabilitado(rs.getBoolean(20));
			reg.setRequiereAdjunto(rs.getBoolean(21));
			reg.setRequisitosAdicionales(rs.getString(22));
			datos.add(reg);
		}//end while

		return datos;
	}

	public Vector<Solicitudserayudante> buscarSolicitudSerAyudante(Date fechaCreacion_desde, Date fechaCreacion_hasta,
			Date fechaModificacion_desde, Date fechaModificacion_hasta,
			String estado,
			String solicitante, String participante,
			String titulo) throws SQLException {
		Vector<Solicitudserayudante> datos = new Vector<Solicitudserayudante>();
		Solicitudserayudante reg;
		ResultSet rs = buscarSolicitud(fechaCreacion_desde, fechaCreacion_hasta,
				fechaModificacion_desde, fechaModificacion_hasta, estado,
				solicitante, participante, titulo, "buscarSolicitudSerAyudante");

		while (rs.next()) {
			reg = new Solicitudserayudante();
			reg.setEstado(rs.getString(1));
			reg.setFechaMaxRecepcionConfirmacion(rs.getDate(2));
			reg.setFechacreacion(rs.getTimestamp(3));
			reg.setFechamodificacion(rs.getTimestamp(4));
			reg.setFkIdCarrera(rs.getInt(5));
			reg.setFkIdDatoAcademico(rs.getInt(6));
			reg.setFkIdDatosFinancieros(rs.getInt(7));
			reg.setFkIdEstudiante(rs.getInt(8));
			reg.setFkIdSolicitudAyudantia(rs.getInt(9));
			reg.setFkParent(rs.getInt(10));
			reg.setHorasContrato(rs.getInt(11));
			reg.setHorasDisponibilidad(rs.getInt(12));
			reg.setIdSolicitudSerAyudante(rs.getInt(13));
			reg.setMensajeParaProfesor(rs.getString(14));
			reg.setNombreArchivo(rs.getString(15));
			reg.setNombreinstanciaproceso(rs.getString(16));
			reg.setPathArchivoAdjunto(rs.getString(17));
			reg.setRespuestaConfirmacion(rs.getString(18));
			reg.setSeleccionado(rs.getBoolean(19));
			datos.add(reg);
		}//end while

		return datos;
	}

	public Vector<Solicitudcambiocarrera> buscarSolicitudCambioCarrera(Date fechaCreacion_desde, Date fechaCreacion_hasta,
			Date fechaModificacion_desde, Date fechaModificacion_hasta,
			String estado,
			String solicitante, String participante,
			String titulo) throws SQLException {
		Vector<Solicitudcambiocarrera> datos = new Vector<Solicitudcambiocarrera>();
		Solicitudcambiocarrera reg;
		ResultSet rs = buscarSolicitud(fechaCreacion_desde, fechaCreacion_hasta,
				fechaModificacion_desde, fechaModificacion_hasta, estado,
				solicitante, participante, titulo, "buscarSolicitudCambioCarrera");
		while (rs.next()) {
			reg = new Solicitudcambiocarrera();
			reg.setEstado(rs.getString(1));
			reg.setFechacreacion(rs.getTimestamp(2));
			reg.setFechamodificacion(rs.getTimestamp(3));
			reg.setFkIdCarreraActual(rs.getInt(4));
			reg.setFkIdCarreraNueva(rs.getInt(5));
			reg.setFkIdProfesor(rs.getInt(6));
			reg.setFkIdSubDecano(rs.getInt(7));
			reg.setFkParent(rs.getInt(8));
			reg.setFkidestudiante(rs.getInt(9));
			reg.setIdSolicitudCambioCarrera(rs.getInt(10));
			reg.setInforme(rs.getString(11));
			reg.setNombreinstanciaproceso(rs.getString(12));
			reg.setObservacionCoordinador(rs.getString(13));
			reg.setObservacionEstudiante(rs.getString(14));
			reg.setObservacionSubDecano(rs.getString(15));
			reg.setResolucion(rs.getString(16));
			reg.setResultadoEvaluacion(rs.getString(17));
			datos.add(reg);
		}//end while
		return datos;
	}

	public Vector<Solicitudconvalidacionmateria> buscarSolicitudConvalidacion(Date fechaCreacion_desde, Date fechaCreacion_hasta,
			Date fechaModificacion_desde, Date fechaModificacion_hasta,
			String estado,
			String solicitante, String participante,
			String titulo) throws SQLException {
		Vector<Solicitudconvalidacionmateria> datos = new Vector<Solicitudconvalidacionmateria>();
		Solicitudconvalidacionmateria reg;
		ResultSet rs = buscarSolicitud(fechaCreacion_desde, fechaCreacion_hasta,
				fechaModificacion_desde, fechaModificacion_hasta, estado,
				solicitante, participante, titulo, "buscarSolicitudConvalidacion");
		while (rs.next()) {
			reg = new Solicitudconvalidacionmateria();
			reg.setAConvalidar(rs.getString(1));
			reg.setEstado(rs.getString(2));
			reg.setFechacreacion(rs.getTimestamp(3));
			reg.setFechamodificacion(rs.getTimestamp(4));
			reg.setFkIdEstudiante(rs.getInt(5));
			reg.setFkIdMateria(rs.getInt(6));
			reg.setFkIdProfesor(rs.getInt(7));
			reg.setFkIdSubDecano(rs.getInt(8));
			reg.setFkParent(rs.getInt(9));
			reg.setIdSolicitudConvalidacion(rs.getInt(10));
			reg.setInforme(rs.getString(11));
			reg.setNombreArchivo(rs.getString(12));
			reg.setNombreinstanciaproceso(rs.getString(13));
			reg.setObservacionEstudiante(rs.getString(14));
			reg.setObservacionProfesor(rs.getString(15));
			reg.setObservacionSubDecano(rs.getString(16));
			reg.setPathArchivoAdjunto(rs.getString(17));
			reg.setResolucion(rs.getString(18));
			reg.setResultadoEvaluacion(rs.getString(19));
			datos.add(reg);

		}//end while
		return datos;
	}

	public Vector<Solicitudaperturapostgrado> buscarSolicitudAperturaPostgrado(Date fechaCreacion_desde, Date fechaCreacion_hasta,
			Date fechaModificacion_desde, Date fechaModificacion_hasta,
			String estado,
			String solicitante, String participante,
			String titulo) throws SQLException {
		Vector<Solicitudaperturapostgrado> datos = new Vector<Solicitudaperturapostgrado>();
		Solicitudaperturapostgrado reg;
		ResultSet rs = buscarSolicitud(fechaCreacion_desde, fechaCreacion_hasta,
				fechaModificacion_desde, fechaModificacion_hasta, estado,
				solicitante, participante, titulo, "buscarSolicitudAperturaPostgrado");
		while (rs.next()) {
			reg = new Solicitudaperturapostgrado();
			reg.setEstado(rs.getString(1));
			reg.setFechacreacion(rs.getTimestamp(2));
			reg.setFechamodificacion(rs.getTimestamp(3));
			reg.setFkIdDecano(rs.getInt(4));
			reg.setFkIdEvaluador1(rs.getInt(5));
			reg.setFkIdEvaluador2(rs.getInt(6));
			reg.setFkIdEvaluador3(rs.getInt(7));
			reg.setFkIdProfesor(rs.getInt(8));
			reg.setFkParent(rs.getInt(9));
			reg.setIdSolicitudApertura(rs.getInt(10));
			reg.setInforme1(rs.getString(11));
			reg.setInforme2(rs.getString(12));
			reg.setInforme3(rs.getString(13));
			reg.setNombreArchivo(rs.getString(14));
			reg.setNombreinstanciaproceso(rs.getString(15));
			reg.setObservacionDecano(rs.getString(16));
			reg.setObservacionEvaluador1(rs.getString(17));
			reg.setObservacionEvaluador2(rs.getString(18));
			reg.setObservacionEvaluador3(rs.getString(19));
			reg.setObservacionProfesor(rs.getString(20));
			reg.setPathArchivoAdjunto(rs.getString(21));
			reg.setResolucion(rs.getString(22));
			reg.setTema(rs.getString(23));
			reg.setTipo(rs.getString(24));
			reg.setResultadoResolucion(rs.getString(25));
			reg.setComentarioResolucion(rs.getString(26));
			datos.add(reg);
		}//end while
		return datos;
	}
}
